import request from '@/utils/request.js'
//导入useTokenStore方法，这个方法调用后会返回一个store对象，存储可复用的代码
import { useTokenStore } from '@/stores/token.js'

//文章分类列表查询
export const articleCategoryListService = ()=>{
    //发送请求前，先获取token，携带token请求到后端
    const tokenStore = useTokenStore()
    //在pinia中定义的响应式数据（token）,都不需要.value,直接使用就可以访问到值
    // return request.get('/category',{
    //     headers:{
    //         Authorization:tokenStore.token
    //     }
    // })  //这样写太麻烦了，直接在request.js中添加请求拦截器，在请求发出前自动添加token

    return request.get('/category')
}


//文章分类添加，以json格式的请求参数
export const articleCategoryAddService = (categoryData)=>{
    return request.post('/category',categoryData)
}

//修改文章分类，Put方法请求，以json格式的请求参数，默认就是json
export const articleCategoryUpdateService = (categoryData)=>{
    return request.put('/category',categoryData)
}

//删除文章分类，注意了，这里的请求参数是queryString，不是json格式的请求参数，所以需要使用params参数或者直接拼接，而且我的后端尝试使用restful风格的接口，所以直接拼接就行了
export const articleCategoryDeleteService = (categoryId)=>{
    return request.delete('/category'+'/'+categoryId)
}

//获取所有文章，要求参数是queryString格式的，所以使用params参数
export const articleListService = (searchparam)=>{
    return request.get('/article',{params:searchparam})
}

//发布文章   ，以json格式的请求参数，POst请求，默认就是json
export const articleAddService = (articleData)=>{
    return request.post('/article',articleData)
}

//修改文章，需要的是完整的json数据，所以使用json格式的请求参数，Put请求
export const articleUpdateService = (articleData)=>{
    return request.put('/article',articleData)
}

//删除文章，后端接口这样访问localhost:8080/article?id=333，所以使用params参数，{params:{id:articleId}}
export const articleDeleteService = (articleId)=>{
    return request.delete('/article',{params:{id:articleId}})
}

//获取文章详情
export const articleDetailService = (articleId)=>{
    return request.get('/article/detail',{params:{id:articleId}})
}